package com.mswork.mes.mapper;

import java.util.List;
import com.mswork.mes.domain.Project;
import com.mswork.mes.domain.ProjectCargo;
import com.mswork.mes.domain.vo.ProjectVo;

/**
 * 项目管理Mapper接口
 * 
 * @author manshu
 * @date 2025-03-03
 */
public interface ProjectMapper 
{
    /**
     * 查询项目管理
     * 
     * @param projectId 项目管理主键
     * @return 项目管理
     */
    public Project selectProjectByProjectId(Integer projectId);

    public ProjectVo selectProjectDetails(Integer projectId);
    /**
     * 查询项目管理列表
     * 
     * @param project 项目管理
     * @return 项目管理集合
     */
    public List<Project> selectProjectList(Project project);
    public List<ProjectVo> selectProjectListV2(Project project);

    /**
     * 新增项目管理
     * 
     * @param project 项目管理
     * @return 结果
     */
    public int insertProject(Project project);

    /**
     * 修改项目管理
     * 
     * @param project 项目管理
     * @return 结果
     */
    public int updateProject(Project project);

    /**
     * 删除项目管理
     * 
     * @param projectId 项目管理主键
     * @return 结果
     */
    public int deleteProjectByProjectId(Integer projectId);

    /**
     * 批量删除项目管理
     * 
     * @param projectIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProjectByProjectIds(Integer[] projectIds);

    /**
     * 批量删除货物
     * 
     * @param projectIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProjectCargoByProjectIds(Integer[] projectIds);
    
    /**
     * 批量新增货物
     * 
     * @param projectCargoList 货物列表
     * @return 结果
     */
    public int batchProjectCargo(List<ProjectCargo> projectCargoList);
    

    /**
     * 通过项目管理主键删除货物信息
     * 
     * @param projectId 项目管理ID
     * @return 结果
     */
    public int deleteProjectCargoByProjectId(Integer projectId);



    /**
     * 查询项目关联
     *
     * @param project 项目管理
     * @return 项目管理集合
     */
    public List<ProjectVo> selectProjectAll(Project project);

    public List<ProjectCargo> selectProjectCargoList(Integer projectId);

    public List<ProjectCargo> selectProjectCargoListV2(Integer[] projectIds);
}
